/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.ces4.produccion.client.loging;

import co.com.ces4.client.baseView.ViewBase;
import co.com.ces4.produccion.client.AutenticacionService;
import co.com.ces4.produccion.client.AutenticacionServiceAsync;
import co.com.ces4.produccion.client.articulo.ConsultaArticulo;
import co.com.ces4.produccion.client.lineaproduccion.ConsultaLineaProduccion;
import co.com.ces4.produccion.client.materiaprima.ConsultaMateriaPrima;
import co.com.ces4.produccion.client.ordenproduccion.ConsultarOrdenProduccion;
import co.com.ces4.produccion.client.solicitudproduccion.ConsultarSolicitudProduccion;
import co.com.ces4.produccion.client.usuario.ConsultarUsuario;
import co.com.ces4.produccion.client.utils.ConstantsResources;
import co.com.ces4.produccion.client.utils.MenuBase;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.RootPanel;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.FormErrorOrientation;
import com.smartgwt.client.types.FormLayoutType;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.tree.TreeNode;
import com.smartgwt.client.widgets.tree.events.NodeClickEvent;
import com.smartgwt.client.widgets.tree.events.NodeClickHandler;

/**
 *
 * @author ias
 */
public class PrincipalMenu {

    public PrincipalMenu() {
        DynamicForm defaultProperties = new DynamicForm();
        defaultProperties.setWrapItemTitles(false);
        defaultProperties.setTitleAlign(Alignment.LEFT);
        defaultProperties.setNumCols(4);
        defaultProperties.setErrorOrientation(FormErrorOrientation.RIGHT);
        defaultProperties.setItemLayout(FormLayoutType.TABLE);
        defaultProperties.setRequiredTitleSuffix(":");
        defaultProperties.setTitleSuffix(":");
        DynamicForm.setDefaultProperties(defaultProperties);

        MenuBase menu = new MenuBase();

        for (TreeNode nodo : menu.getTree().getAllNodes()) {
            nodo.setCustomStyle("nivel1");
        }

        final ViewBase view = new ViewBase();
        ConstantsResources.getInstance().setViewBaseInstance(view);
        menu.setBackgroundColor("#CACCCC");
        menu.setBodyBackgroundColor("#CACCCC");

        menu.addNodeClickHandler(new NodeClickHandler() {

            @Override
            public void onNodeClick(NodeClickEvent event) {
                if (event.getNode().getAttributeAsString("idMenuItem").equals("21")) {
                    final ConsultaArticulo consultaArticulo = new ConsultaArticulo();
                    view.formsContainer.removeMembers(view.formsContainer.getMembers());
                    view.addFormsContainerItem(consultaArticulo);
                }

                if (event.getNode().getAttributeAsString("idMenuItem").equals("22")) {
                    final ConsultaMateriaPrima consultaMateriaPrima = new ConsultaMateriaPrima();
                    view.formsContainer.removeMembers(view.formsContainer.getMembers());
                    view.addFormsContainerItem(consultaMateriaPrima);
                }

                if (event.getNode().getAttributeAsString("idMenuItem").equals("23")) {
                    final ConsultaLineaProduccion consultaLineaProduccion = new ConsultaLineaProduccion();
                    view.formsContainer.removeMembers(view.formsContainer.getMembers());
                    view.addFormsContainerItem(consultaLineaProduccion);
                }

                if (event.getNode().getAttributeAsString("idMenuItem").equals("24")) {
                    final ConsultarUsuario consultarUsuario = new ConsultarUsuario();
                    view.formsContainer.removeMembers(view.formsContainer.getMembers());
                    view.addFormsContainerItem(consultarUsuario);
                }

                if (event.getNode().getAttributeAsString("idMenuItem").equals("31")) {
                    final ConsultarSolicitudProduccion consultarSolicitudProduccion = new ConsultarSolicitudProduccion();
                    view.formsContainer.removeMembers(view.formsContainer.getMembers());
                    view.addFormsContainerItem(consultarSolicitudProduccion);
                }
                if (event.getNode().getAttributeAsString("idMenuItem").equals("32")) {
                    final ConsultarOrdenProduccion ConsultarOrdenProduccion = new ConsultarOrdenProduccion();
                    view.formsContainer.removeMembers(view.formsContainer.getMembers());
                    view.addFormsContainerItem(ConsultarOrdenProduccion);
                }
                if (event.getNode().getAttributeAsString("idMenuItem").equals("4")) {
                    getAutenticationServices().cerrarSesion(new AsyncCallback<Void>() {

                        public void onFailure(Throwable caught) {
                            com.google.gwt.user.client.Window.Location.reload();
                        }

                        public void onSuccess(Void result) {
                            com.google.gwt.user.client.Window.Location.reload();
                        }
                    });
                }
            }
        });
        view.addStyleName("centerForm");
        view.setBackgroundImage(GWT.getModuleBaseURL() + "fondogeneral.png");
        view.setHeaderBackground(GWT.getModuleBaseURL() + "header.png");
        view.setFooterBackground(GWT.getModuleBaseURL() + "pie.png");
        view.addMenuItem(menu);

        Label textoPiePagina = new Label("Copyright © 2013 | SOFTPRO | Todos los derechos reservados.");
        textoPiePagina.setWidth100();
        textoPiePagina.setHeight100();
        textoPiePagina.setAlign(Alignment.CENTER);
        textoPiePagina.setStyleName("piePagina");
        HLayout h = new HLayout();
        h.setWidth100();
        h.setHeight100();
        h.setAlign(Alignment.CENTER);
        h.addMember(textoPiePagina);
        view.addFooterItem(h);
        RootPanel.get().add(view);

    }

    public static AutenticacionServiceAsync getAutenticationServices() {
        return GWT.create(AutenticacionService.class);
    }
}
